# apikey  从 阿里云百炼 和 Xi APi 上申请https://api.xi-ai.cn/token
from common import *
import http.client
import json
from conf import *

q= """
01 稳定的机制：用变化对抗变化
这一章的主题是“变量”。但在介绍具体的心理学变量之前，我想
先跟你讨论一个基本问题：心理学真的可以提取出稳定的变量吗?人的
心理特点不会随着主观意志而变化吗?
我想，我们都有一种粗略的印象，认为每个人的内在都有一些稳
定不变的特点。要不怎么说“江山易改，本性难移”呢?可是话说回来，
不还有一句话叫“士别三日，当刮目相看”吗?昨天我心情不好，一整天
都不想工作；今天我突然来了兴致，从早到晚都在忙个不停。那我这
个人究竟是勤快还是懒，这个变量还值得探讨吗?
我想告诉你，虽然从微观尺度上看，人每时每刻都在变化，但放
在长远一点的尺度上看，变化的范围是有限的，心理学仍然可以从个
人身上提炼出相对稳定的变量。
最基础的稳定机制是我们的感知，也就是我们认识这个世界的基
础。
"""
def tts_file(q,speaker,file):
   conn = http.client.HTTPSConnection("api.xi-ai.cn")
   payload = json.dumps({
      "model": "tts-1",
      "input": q,
      "voice": speaker
   })

   headers = {
      'Authorization': Xi.api_key,
      'Content-Type': 'application/json'
   }
   conn.request("POST", "/v1/audio/speech", payload, headers)
   res = conn.getresponse()
   data = res.read()

   # 保存数据为音频文件
   with open(file, "wb") as f:
       f.write(data)

   print("音频文件已保存为 output.wav")


import dashscope
from dashscope.audio.tts_v2 import *
#https://help.aliyun.com/zh/model-studio/user-guide/text-to-speech?spm=0.0.0.i1
# 若没有将API Key配置到环境变量中，需将下面这行代码注释放开，并将apiKey替换为自己的API Key
dashscope.api_key = Alibaba.api_key
model = "cosyvoice-v1"
#
@timeit
def cosyvoice_tts(q,voice,file):
   print('字数',len(q))
   synthesizer = SpeechSynthesizer(model=model, voice=voice)
   audio = synthesizer.call(q)
   print('requestId: ', synthesizer.get_last_request_id())
   with open(file, 'wb') as f:
       f.write(audio)